<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../vue.js"></script>
</head>
<body>
    <div id="app">
        <!-- v-model引用的对象，必须在Vue实例中data中也声明 -->
        <input v-model="message" placeholder="edit me">
        <p>Message is: {{ message }}</p>

        <!-- 多行文本 -->
        <span>Multiline message is:</span>
        <!-- 在这里输入的message理所应当地，也会影响到上面那个message，包括上面的输入框 -->
        <p style="white-space: pre-line;">{{ message }}</p>
        <br>
        <!-- textarea，用于允许多行输入 -->
        <textarea v-model="message" placeholder="add multiple lines"></textarea>

        <!-- 绑定布尔值 -->
        <input type="checkbox" id="checkbox" v-model="checked">
        <!-- label 的 for属性，使得我们点击这个label就能响应点击这个input -->
        <label for="checkbox">{{ checked }}</label>
    </div>

    <div id='example-3'>
        <input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
        <label for="jack">Jack</label>
        <input type="checkbox" id="john" value="John" v-model="checkedNames">
        <label for="john">John</label>
        <input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
        <label for="mike">Mike</label>
        <br>
        <!-- 按放进去的顺序 -->
        <span>Checked names: {{ checkedNames }}</span>
      </div>

      <div id="example-4">
        <input type="radio" id="one" value="One" v-model="picked">
        <label for="one">One</label>
        <br>
        <input type="radio" id="two" value="Two" v-model="picked">
        <label for="two">Two</label>
        <br>
        <span>Picked: {{ picked }}</span>
      </div>

      <!-- 下拉选择框 -->
    <div id="example-5">
        <!-- select 下拉选择框，v-model绑定在父元素 -->
        <select v-model="selected">
            <!-- 下拉选择框的成员是option -->
            <!-- disabled用于禁用选项，允许默认，但不允许选择它 -->
            <!-- 一般这种值推荐添加自己的value，防止真的把“请选择”放入selected中了 -->
            <option disabled value="">请选择</option>
            <option>A</option>
            <option>B</option>
            <option>C</option>
        </select>
        <span>Selected: {{ selected }}</span>
    </div>

    <!-- 多选时 (绑定到一个数组)： -->
    <!-- 通过按住ctrl来实现多选 -->
    <div id="example-6">
        <!-- 允许多选的选择selected，要添加属性multiple -->
        <select v-model="selected" multiple style="width: 50px;">
            <option>A</option>
            <option>B</option>
            <option>C</option>
        </select>
        <br>
        <span>Selected: {{ selected }}</span>
    </div>

    <div id="app2">
        <select v-model="selected">
            <!-- 用v-for创建多个option -->
            <!-- 用:value赋真实值 -->
            <!-- 用text赋表现值 -->
            <option v-for="option in options" v-bind:value="option.value">
                {{ option.text }}
            </option>
        </select>
        <span>Selected: {{ selected }}</span>
    </div>

    <div id="app3">
        <!-- 当选中时，`picked` 为字符串 "a" -->
        <input type="radio" v-model="picked" value="a">

        <!-- `toggle` 为 true 或 false -->
        <!--  (对于复选框也可以是布尔值) -->
        <input type="checkbox" v-model="toggle">

        <!-- 当选中第一个选项时，`selected` 为字符串 "abc" -->
        <select v-model="selected">
            <option value="abc">ABC</option>
        </select>
    </div>

    <div id="app4">
        <!-- 通过true-value和false-value，修改true和false在v-model对象上绑定的值 -->
        <input type="checkbox" v-model="toggle" true-value="yes" false-value="no">
        <label>{{toggle}}</label>
    </div>

    <div id="app5">
        <input type="radio" v-model="pick" v-bind:value="a">
        <select v-model="selected">
            <!-- 内联对象字面量 -->
            <option v-bind:value="{ number: 123 }">123</option>
        </select>
    </div>


    <div id="app6">
        <!-- 在“change”时而非“input”时更新 -->
        <!-- 当输入框失去焦点后就会触发change事件 -->
        <input v-model.lazy="msg" >
        <p>{{msg}}</p>

        <br>
        <!-- 将用户的输入值转为数值类型，可以给 v-model 添加 number 修饰符 -->
        <input v-model.number="age" type="number">
        <!-- 如果这个值无法被 parseFloat() 解析，则会返回原始的值。即是啥就是啥 -->
        <p>{{age}}</p>
        <br>
        <!-- 如果要自动过滤用户输入的首尾空白字符，可以给 v-model 添加 trim 修饰符 -->
        <!-- 不仅仅会过滤首位空白字符，还会将多个空格整合视为1个空格 -->
        <input v-model.trim="msg1">
        <p>->{{msg1}}<-</p>
    </div>
    <script src="vue.js"></script>
</body>
</html>